package com.zhpan.indicator.drawer;

import com.zhpan.indicator.base.MeasureResult;

import ohos.agp.components.Component;
import ohos.agp.render.Canvas;

/**
 * 形状抽象类
 *
 * @since 2021-04-13
 */
public interface IDrawer {
    /**
     * 布局测量
     *
     * @param changed 是否改变
     * @param left 左坐标
     * @param top 上坐标
     * @param right 右坐标
     * @param bottom 下坐标
     */
    void onLayout(boolean changed, int left, int top, int right, int bottom);

    /**
     * 测量控件 封装宽高属性
     *
     * @param widthMeasureSpec 宽测量属性
     * @param heightMeasureSpec 高测量属性
     * @return 封装的宽高属性
     */
    MeasureResult onMeasure(int widthMeasureSpec, int heightMeasureSpec);

    /**
     * 绘制
     *
     * @param component 绘制的控件
     * @param canvas 画布
     */
    void onDraw(Component component, Canvas canvas);
}
